Electronic systems and circuits have made a significant contribution towards the advancement of modern society and are utilized in a number of applications to achieve advantageous results. Numerous electronic technologies such as digital computers, calculators, audio devices, video equipment, and telephone systems have facilitated increased productivity and reduced costs in analyzing and communicating data in most areas of business, science, education and entertainment. Electronic systems providing these advantageous results often include shared resources. However, designing and building systems that efficiently access and utilize a shared resource is often challenging. Coordinating the access to shared resources can be highly complex and resource intensive.
Memory or storage is usually a very important component of a number of systems. Memories typically store information utilized by a system in performance of a number of different tasks. Other components of a system typically request access to a memory in order to retrieve (e.g., “read”) information from or forward (e.g., “write’) information to the memory. Different types of memories (e.g., bulk storage, main memory, removable memory etc.) and or memory “spaces” (e.g., virtual, physical, etc.) can be utilized to support information storage.
Different types of memory can potentially offer different features. For example, different types of memories typically have different relative storage capacities and relatively different access speeds. Traditionally, systems that have relatively large storage capacity have relatively slow access speeds and systems that have relatively fast access speeds have relatively small storage capacities. For example, main system memories are relatively fast compared to bulk storage memories but typically store less information. A number of systems transfer chunks of information between relatively fast small memories and relatively slow bulk memories in an attempt to optimize speed and capacity.
Some systems and applications also attempt to increase storage efficiency through various information compression techniques. Conventional information compression techniques often attempt to take advantage of repetitive information to achieve various compression ratios. Traditional approaches usual store reduced version of the information and compression information that is used to reformulate a full version by using the ratios to expand the repetitive information. Conventional compression information tracking and storage approaches are often limited in flexibility. For example, traditional approaches often utilize a limited number of tiled regions.
Traditional computer systems also often run programs that utilize virtual memory space addressing. Typically the computer system performs a translation between the virtual memory space addressing and physical memory space addressing. However, coordinating virtual address space to physical address space translation with compression techniques can be relatively complex and hindered by conventional compression information storage approaches.